#ifndef _SRT_H_
#define _SRT_H_

#include "common/base_type.h"

enum TSrtPidTypeTag
{
    kSrtPidTypeBool,   ///< Bool  属性
    kSrtPidTypeFloat,  ///< Float 属性

    kSrtPidTypeMax,
};
typedef enum TSrtPidTypeTag TSrtPidType;

enum TSrtPidBoolTag
{
    kSrtBoolPwrStatus,  ///< Bool PWR状态
    kSrtBoolAccStatus,  ///< Bool ACC状态
    kSrtBoolLogEnable,  ///< Bool 日志使能

    kSrtBoolMax,
};
typedef enum TSrtPidBoolTag TSrtPidBool;

enum TSrtPidFloatTag
{
    kSrtFloatBusVolt,  ///< Float 总线电压值 单位：V
    kSrtFloatBusCurr,  ///< Float 总线电流值 单位：mA

    kSrtFloatMax,
};
typedef enum TSrtPidFloatTag TSrtPidFloat;


/**
 * 获取属性是否被设置过
 *
 * @param pid_type 属性类型
 * @param pid 属性ID，详见 TSrtPidBool
 * @return Bool 是否设置过
 */
Bool TSrtIsSet(TSrtPidType pid_type, Int32 pid);

/**
 * 获取属性时间戳
 *
 * @param pid_type 属性类型
 * @param pid 属性ID，详见 TSrtPidBool
 * @param timestamp 输出缓冲区
 * @return Bool 获取结果
 */
Bool TSrtGetTimestamp(TSrtPidType pid_type, Int32 pid, UInt32 *timestamp);

/**
 * 获取Bool类型属性
 *
 * @param pid 属性ID，详见 TSrtPidBool
 * @param bool_value 输出缓冲区
 * @return Bool 获取结果
 */
Bool TSrtGetBool(TSrtPidBool pid, Bool *bool_value);

/**
 * 设置Bool类型属性
 *
 * @param pid 属性ID，详见 TSrtPidBool
 * @param bool_value 设置参数值
 * @return Bool 设置结果
 */
Bool TSrtSetBool(TSrtPidBool pid, Bool bool_value);

/**
 * 获取Float类型属性
 *
 * @param pid 属性ID，详见 TSrtPidFloat
 * @param float_value 输出缓冲区
 * @return Bool 获取结果
 */
Bool TSrtGetFloat(TSrtPidFloat pid, Float *float_value);

/**
 * 设置Float类型属性
 *
 * @param pid 属性ID，详见 TSrtPidFloat
 * @param float_value 设置参数值
 * @return Bool 设置结果
 */
Bool TSrtSetFloat(TSrtPidFloat pid, Float float_value);

#endif ///<_SRT_H_
